nomansskyfandomcom-20200223-history
Procedural generation
No Man's Sky features a procedurally generated open universe of 18 quintillion planets, which means the game is generated algorithmically rather than manually. It is the first game to use procedural generation to the extent it does.A Behind-The-Scenes Tour Of No Man's Sky's Technology Nearly all elements of the game are procedurally generated, including solar systems, planets and their ecosystems, flora, fauna and their behavioral patterns, artificial structures, and alien factions and their spacecraft. The game's engine employs several algorithms that can mimic a wide range of geometry and structure found in nature. Art elements created by human artists are used and altered as well within these generation systems. The game's audio, including ambient sounds and its underlying soundtrack, also use procedural generation methods from base samples developed by Paul Weir and the musical group 65daysofstatic. Overview "In computing, procedural generation is a method of creating data algorithmically as opposed to manually. In computer graphics it is commonly used to create textures and 3D models. In video games it is used to create large amounts of content in a game. Advantages of procedural generation include smaller file sizes, larger amounts of content, and randomness for less predictable gameplay." — From Wikipedia All life is spawned initially by a process called procedural generation - in this case a rules engine using a bio-mathematical field called L-systems - underlying the production of the natural features in the game. Whilst it uses mathematical noise and chaos theory, it is not simply random, as TheSeaOfThySoul“What do you do in No Man’s Sky?” and other questions – Answered points out: “The rules of the game dictate how the world works... ecosystems are cohesive, and environments are structured as if hand designed, because they make sense within the rules crafted.” Whilst procedural generation will start from scratch for any new visitor to a planet, the initial factors being fed into the algorithm should be identical, such that each character will see the same types of creatures and behaviours, if not the identical individuals (unless two characters are close enough to each other); indeed it appears that species extinctions are not possible. The process The game’s art director, Grant Duncan, told Gameinformer:A Look At No Man’s Sky’s Creature Features ”When it came to creatures, we built the kind of creatures that exist on the Earth... and it's quite surprising how few different types of skeletons there are.” Gameinformer further notes, “Hello Games looked at these basic templates (i.e. skeletons) – which they call blueprints – as the basic foundational essence of their creatures.” TheSeaOfThySoul goes on to add that these blueprints, can be fed into this system, interacting with each rule before they end up as an animal or plant in an environment that suits them... As height changes, weight can change, the proportions the animal has can change, as this changes the animations can change, the bones can get bigger, thicker, and the voice can get deeper, etc. What is the environment like? What kind of creature is it? Where is it in the food chain? What will it prey on, what will prey on it? How will it interact with other creatures? As this blob is fed through the system you’re creating an animal that will make sense in the end, which even has behaviours, a male and female of the species, and variation among the species, for instance one might be a bit taller, have longer horns, etc. At the detailed level, Grant DuncanNo Man's Sky: How I Learned to Love Procedural Art has talked about two levels of procedural generation - one which creates terrain, and another which adds props (i.e. everything else). The blueprint system uses the following process: # As worlds are generated, their biomes are tagged to allow props to be consistent with their features. # Artists have drafted hundreds if not thousands of base templates for animals, plants, space ships, multi-tools, space stations, etc. Shared rigs are generally used to reduce unnecessary complexity (e.g. 'horse' and 'deer' templates start with the same skeleton; 'sharks' and 'dolphins' share one too). Templates are also tagged with attributes for later use (e.g. lizards or types of trees will tend to have a suite of constraints associated with them). # Accessories are added to the template - for animals this might be the snout type or horns; for trees this would be its branching and leaf structure. A large library of such accessories are available. Tags are also added such that large teeth or spikes will relate to behaviour or location later on in the process. # Layering is then added - for animals it could include skin or scale type and colour; for plants it would be bark texture, moss and colour. Again, a library of materials can be dipped into by the procedural generator and tags are again used, e.g. glowing layering may be associated with subterranean habitats. # Bone scaling is then applied - for animals this affects body size and relative limb lengths; for plants the 'bone' is code for other attributes like pose. # Appropriate behaviours are then added - for animals, this might mean sprightly or plodding gait or voice pitch, depending on the bone scaling; for plants it could mean preferred altitude or terrain slope angle. Tags again come into play - lizards tend to behave 'lizardishly'. # Rules are recursively applied throughout the process to avoid ugliness and to improve consistency. Termed a recipe, these rules include using a custom colour pallete to match or complement plant and animal colours to terrain and atmospheric features, matching animal types and skin (or plant bark and moss) layering to biomes, and matching overall animal aggression to biome hostility. (NB: These rules are progressivly waived the closer to the centre of the universe one travels.) References Category:Game Design